package com.md.api.service;

import com.github.binarywang.wxpay.exception.WxPayException;
import com.md.api.entity.HttpResult;
import com.md.api.entity.ShoppingCart;
import com.md.api.entity.ShoppingSpuEvaluate;
import com.md.api.entity.dto.ComposeCommitDto;
import com.md.api.entity.dto.ComposeQueryDto;

import javax.servlet.http.HttpServletRequest;

/**
 * @Author liujie
 * @ClassName UserSevice
 * @Date 2022/11/9 11:34
 **/
public interface ShoppingCartService {

    HttpResult addShoppingCart(HttpServletRequest request, ShoppingCart shoppingCart);

    HttpResult myShoppingCart(HttpServletRequest request, ComposeQueryDto qto);

    HttpResult removeShoppingCart(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult resetProductCount(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult shoppingCartTrade(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult orderShoppingCart(HttpServletRequest request, ComposeCommitDto qto) throws WxPayException;

    String shoppingNotify(HttpServletRequest request, Boolean isCart);
    void successPay(String orderNo,Integer totalFee,String tradeState);

    HttpResult refundProduct(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult fillReturnInfo(HttpServletRequest request, ComposeQueryDto qto);

    HttpResult logistics( ComposeQueryDto queryDto);

    HttpResult cancelRefund(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult shoppingTrade(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult shoppingOrder(HttpServletRequest request, ComposeCommitDto qto) throws WxPayException;

    String backShoppingNotify(HttpServletRequest request);

    HttpResult changeProduct(HttpServletRequest request, ComposeCommitDto qto);

    HttpResult cancelChange(HttpServletRequest request, ComposeCommitDto qto);

//    HttpResult fillChangeInfo(HttpServletRequest request, ComposeQueryDto qto);

    HttpResult evaluate(HttpServletRequest request, ShoppingSpuEvaluate evaluate);

    HttpResult evaluatePage(ComposeQueryDto qto);

    HttpResult changeDetail(HttpServletRequest request, ComposeCommitDto qto);
}
